package networkSimulation.simulation.animals.framework

import networkSimulation.framework.{Graph, Edge, Node}

/**
 * This class represents a Rabbit.
 * Every Rabbit has a name
 * A Rabbit is a subType of Animal
 *
 * @author  Tim Caljé
 *          Jeroen De Raedt
 *          Jorick Van Aken
 */
case class Rabbit(rabbitName : String) extends Animal(rabbitName) {

  /**
   * Get the color of the Rabbit
   */
  @Override
  override def getColor = "orange"

  /**
   * Eat another Animal
   *
   * @param animal
   *        The animal that will be eaten.
   * @post  Nothing
   *        The Rabbit isn't hungry; he doesn't eat anything.
   */
  @Override
  override def eat[A <% Animal](animal : A) {}

  /**
   * Custom simulation.
   *
   * @param graph
   *        The graph of which the Rabbit is a part of.
   * @post  Nothing
   *        The Rabbit is lazy; he doesn't do anything.
   */
  @Override
  override def simulate[N<%Node, E<%Edge[N]](graph: Graph[N, E]) {}

  /**
   * Increment the number of days that the Rabbit hasn't eaten
   *
   * @post  Nothing
   *        The Rabbit doesn't care
   */
  @Override
  override def incrementDaysWithoutFood() {}

}